Application Migration Service (AWS MGN)のステージング環境をCloudFormationで用意する
こんにちは、AWS事業本部の荒平(@0Air)です。
Application Migration Service (AWS MGN)のステージングをサクッと準備したいけど、何度も作成したり削除するのは面倒だなーと思うことがあります。
CloudFormationで用意すれば楽に管理できます。同じ悩みを持つ方や未来の私に向けて作成してみました。
CloudFormationを初めて触る方は、以下もご参考ください。
実現したいこと
以下の記事のネットワークを一発で用意します。(詳細なルーティングなどを除く)
構成図は上記記事から拝借しました。
図の右側(Staging VPC)に加えて、Public Subnet, Private Subnetを一つずつ用意します。
成果物
以下のCloudFormationテンプレートによって、VPC, Internet Gateway, PublicSubnet, PrivateSubnet, VPC Endpoint 4つがデプロイされます。
セキュリティグループやルートテーブル、CIDRなどは環境に応じて設定変更してください。
また、DirectConnectを経由しない場合など、VPC Endpointの作成が不要な場合は、58行目以降を削除します。
Resources: MyVPC: Type: 'AWS::EC2::VPC' Properties: CidrBlock: '172.16.0.0/16' # 環境に合わせて、CIDRブロックを変更してください PublicSubnet: Type: 'AWS::EC2::Subnet' Properties: VpcId: Ref: MyVPC CidrBlock: '172.16.1.0/24' # 環境に合わせて、CIDRブロックを変更してください MapPublicIpOnLaunch: true InternetGateway: Type: 'AWS::EC2::InternetGateway' AttachGateway: Type: 'AWS::EC2::VPCGatewayAttachment' Properties: VpcId: Ref: MyVPC InternetGatewayId: Ref: InternetGateway PublicRouteTable: Type: 'AWS::EC2::RouteTable' Properties: VpcId: Ref: MyVPC PublicRoute: Type: 'AWS::EC2::Route' DependsOn: AttachGateway Properties: RouteTableId: Ref: PublicRouteTable DestinationCidrBlock: '0.0.0.0/0' GatewayId: Ref: InternetGateway SubnetRouteTableAssociation: Type: 'AWS::EC2::SubnetRouteTableAssociation' Properties: SubnetId: Ref: PublicSubnet RouteTableId: Ref: PublicRouteTable PrivateSubnet: Type: 'AWS::EC2::Subnet' Properties: VpcId: Ref: MyVPC CidrBlock: '172.16.2.0/24' # 環境に合わせて、CIDRブロックを変更してください MapPublicIpOnLaunch: false # ここから下はVPC Endpointの作成(不要な場合は削除してください) EC2VPInterfaceCEndpoint: Type: 'AWS::EC2::VPCEndpoint' Properties: VpcId: Ref: MyVPC ServiceName: !Sub "com.amazonaws.${AWS::Region}.ec2" VpcEndpointType: Interface MGNVPCInterfaceEndpoint: Type: 'AWS::EC2::VPCEndpoint' Properties: VpcId: Ref: MyVPC ServiceName: !Sub "com.amazonaws.${AWS::Region}.mgn" VpcEndpointType: Interface S3VPCInterfaceEndpoint: Type: 'AWS::EC2::VPCEndpoint' Properties: VpcId: Ref: MyVPC ServiceName: !Sub "com.amazonaws.${AWS::Region}.s3" VpcEndpointType: Interface S3VPCGatewayEndpoint: Type: 'AWS::EC2::VPCEndpoint' Properties: VpcId: Ref: MyVPC ServiceName: !Sub "com.amazonaws.${AWS::Region}.s3" VpcEndpointType: Gateway RouteTableIds: - !Ref PublicRouteTable
スタックをデプロイします。
スタック名の論理IDが「CREATE_COMPLETE」のステータスになれば、正常に作成されています。
おわりに
Application Migration Service (AWS MGN)のステージング環境を作成する必要があったため、一発で用意するためのテンプレートを準備しました。
よく利用する定形のネットワークに関しては、こうしてテンプレート化しておくと作業の手間が省けて便利です。
このエントリが誰かの助けになれば幸いです。
それでは、AWS事業本部 コンサルティング部の荒平(@0Air)がお送りしました!